<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]>      <html class="no-js"> <!--<![endif]-->
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="">
  </head>
  <body>
    
    <script> 
       // 股票最大利润问题
       let prices =  [10,1,2,8,9 ,1, 7];
       //  本质是22比较找出极差 转移方程 dn(dn-1  , price(n)- priceMin)
      function maxProfit(prices){
          if(!prices || !prices.length) return 0;
          // priceMin  找到最小值， dp 找到最小的差值
          var priceMin = prices[0];
          // 保存上一次计算出来的最小极差
          var dp = 0;
          for(var i = 1; i< prices.length; i++){
            if(prices[i] > priceMin){
               dp = Math.max(dp, prices[i]-priceMin);
            }else{
              priceMin = prices[i];
            }
          }
          return dp;
      }

    //  console.log( maxProfit(prices) )

     /* 小偷问题，一晚上最多偷取多少现金， 
        影响小偷的就是相邻的房间装有报警设备，如果
     一晚上相邻的屋子遭遇盗窃就会触发警报，
     问在不触发警报的情况下最多偷到多少钱
     1,3,,7
     ---  想错了，题目意思是不能相邻，可以1，3，6，8 这样比较
     sum(n) =  max(sum(n-2)+f(n), sum(n-1))
     ---  不是太理解 ，只知道用dp 代表之前的一项
     还是分解， 不要用sum 的思想而是用fn 的思想， fn 只与f(n-1) 和 f(n-2) + a[i] 有关
      fn = max(fn(n-2)+f(n), fn(n-1)), 这么一看是不是就找到递归公式了
      设立数组还是变量，在于与前2项都有关一个变量可搞不来
       d
     */
     var cashArr =[2,1,2,4, 8,9 ,1, 7];

     function getMostCash(cashArr){
       
        const len = cashArr[i].length;
        const dp =  new Array[len + 1];
        dp[0] = 0;
        dp[1] =1;
        for(var i = 2;i<=len ;i++){
          dp[i] = Math.max(dp[i-1], dp[i-2] + cashArr[i-1]);
        }
         return dp[len];
       
     }



     console.log(getMostCash(cashArr))


    </script>
  </body>
</html>